type IndexType = string | number | symbol;

// 普通对象
export type PlainObject<K extends IndexType = string, V = unknown> = Record<
  K,
  V
>;

// 原始数据
export type PrimitiveType =
  | number
  | string
  | boolean
  | undefined
  | null
  | symbol;

// 一般函数
export type GeneralFunction<T = unknown> = (...args: any[]) => T;
